double temperatura_inicial (double beta,
                            double gama,
                            int SAmax,
                            double T_inicial,
                            int tot_trip,
                            int *ftrip,
                            struct trip *trip,
                            struct trip *trip_star,
                            struct trip *trip_linha,
                            struct trip *trip_orig)
//------------------------------------------------------------------------------
{
char continua;
int iterT, aceitos, delta;
int ftrip_linha;
double x;
double T_final = T_inicial;
srand(time(NULL));

continua = true;
  while (continua){
    aceitos = 0;
      for (iterT =1; iterT <= SAmax; iterT++){

         copia_trip (trip_linha, trip, tot_trip);
         ftrip_linha = *ftrip;
         
        sorteia_viagem(3, 3, tot_trip, trip_linha, trip_orig);
        gera_trip("NSuica", tot_trip, 0, trip_linha);
        system("ArcGen2004");
        le_arquivo("NSuica.sol",&ftrip_linha);
        printf("\nFO Vizinho: %d\n", ftrip_linha);

        delta = ftrip_linha - (*ftrip);

        if (delta < 0) {
          aceitos = aceitos + 1;
        }
          else{
                 x = randomico (0, 1);
                 if ( x < exp(-delta/T_final) && delta != 0){
                   aceitos = aceitos + 1;
                 }
           }
       }

      if (aceitos >= gama * SAmax){
        continua = false;
      }
        else{
         T_final = beta * T_final;
        }
  }
 return (T_final);
}
